DL笔记:Neural Networks 神经网络
回顾 - DL笔记:机器学习和深度学习的区别
:听说深度学习的思想受到神经网络的启发,那是什么玩意儿?
:神经网络包括生物神经网络和人工神经网络。在生物神经网络中,每个神经元与其他神经元相连。它接收其他神经元的输入,当电位超过了某个阈值(threshold)而被「激活」时,会向相连的神经元「发射」(fire)信号。
:那跟机器学习有关系吗?机器没有生命啊……
Perceptrons 感知机
:参考生物神经网络,在计算机科学中,我们将独立的计算单元看做神经元。感知机 (Perceptron) 是神经网络的基本单位。每一个感知机都完成类似「给我一个数字,我告诉你它是正还是负」这样的简单任务。
比如说,我们把神经元看做包含一个 0 到 1 之间数字的小球:
神经元里面的数字叫激活函数 (Activation)。当数字超过某个阈值,比如说 0.5 时,我们就说这个神经元被激活了,它会输出 1 作为信号。如果神经元包含的数字小于 0.5,那它就输出 0,表示没有被激活。
这个神经元就是一个感知机。
一个感知机接收若干二进制输入
:这小球长得倒是有那么一丢丢像神经元……
:在这个最简单的系统里,包含:
输入:这个神经元接收到的其他神经元的信号
判断器:激活函数
输出:1 表示 yes「发射」,0 表示 no「不发射」
:艾玛,这也叫简单?
:它其实是这个意思:
:好吧我错了……让我晕一晕
:其实主要看蓝色的字就好。神经元怎么计算输出呢?我们引入「权重」(weights),它表示从输入到输出的重要程度。权重的和
每一层神经元因为拥有上一层神经元的「经验」(上一层的输出),所以可以做出更抽象的「决策」。当我们把许多这样的神经元按一定的层次结构连接起来,就得到了人工神经网络(Artificial Neural Network)。
:ANN,那我可以叫它 安?
:你喜欢咯…… 其实所有的深度学习的神经网络,都可以抽象成三个部分:
除了输入和输出层,中间的层都叫隐层。深度神经网络就是隐层数量很多的神经网络,深度学习就是从多层神经网络中,自动学习出各种 pattern。
:666!能不能 input 废纸 output 比特币呀?
:……吃药时间到了
利用深度神经网络进行学习
:总结一下,对神经网络来说,输入层是数据集/变量,隐层是变量之间的关系(包含变量权重),形成高一级别的「模式」传递给下一个隐层,最后确定输出层的结果。
:为什么我总是听说「训练」神经网络好让它「学习」呢?
:训练神经网络的目标,其实就是计算和调整权重 weights,使得模型输出结果最接近真实的数据集。
:好抽象哦……
:举个例子,我们要预测房价的走势。假设知道房子大小可以预测房价,这个关系就可以用一个神经网络节点(node)来简单估计。
如果我们知道很多房子的信息怎么办呢?这时候就需要很多的节点,这些节点构成神经网络。房子的多种信息作为输入,房价的预测值作为输出,中间层(可以有多个)是用来计算出前面一层信息的权重,得出一定的模式,传导给下一层,直到最后得出预测值 y。
via: Neural Networks and Deep Learning | Coursera
:好像有点明白了,让机器自己学习中间隐藏起来看不见的「规律」!
:再举个例子,图像识别是深度学习最广泛的应用之一,我们给系统看一张图,它能告诉我们这张图里有没有汪星人:
:哇,原来机器在背后做了这么多事情,我还以为机器都很聪明呢,原来它们只是比较勤奋哈哈哈
:你得到了它~
Ref
Neural networks and deep learning - http://neuralnetworksanddeeplearning.com/
Deep Learning Nanodegree | Udacity - https://www.udacity.com/course/deep-learning-nanodegree-foundation--nd101
Neural Networks and Deep Learning | Coursera - https://www.coursera.org/learn/neural-networks-deep-learning